package com.server.entity;
import com.alibaba.fastjson.annotation.JSONField;

import java.math.BigDecimal;
import java.util.Date;
import java.util.StringJoiner;


/**
 * The type Movies.
 */
public class Movies {

    private Integer movieId;

    private String movieName;

    private String movieNameSecond;

    private String movieDirector;

    private String movieStarring;

    private BigDecimal moviePrice;

    private Boolean movieIsShow;

    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date movieCreate;

    /**
     * Instantiates a new Movies.
     *
     * @param movieName       the movie name
     * @param movieNameSecond the movie name second
     * @param movieDirector   the movie director
     * @param movieStarring   the movie starring
     * @param moviePrice      the movie price
     * @param movieIsShow     the movie is show
     * @param movieCreate     the movie create
     */
    public Movies(String movieName, String movieNameSecond, String movieDirector, String movieStarring, BigDecimal moviePrice, Boolean movieIsShow, Date movieCreate) {
        this.movieName = movieName;
        this.movieNameSecond = movieNameSecond;
        this.movieDirector = movieDirector;
        this.movieStarring = movieStarring;
        this.moviePrice = moviePrice;
        this.movieIsShow = movieIsShow;
        this.movieCreate = movieCreate;
    }

    /**
     * Instantiates a new Movies.
     */
    public Movies() {
    }

    /**
     * Gets movie id.
     *
     * @return the movie id
     */
    public Integer getMovieId() {
        return movieId;
    }

    /**
     * Sets movie id.
     *
     * @param movieId the movie id
     */
    public void setMovieId(Integer movieId) {
        this.movieId = movieId;
    }

    /**
     * Gets movie name.
     *
     * @return the movie name
     */
    public String getMovieName() {
        return movieName;
    }

    /**
     * Sets movie name.
     *
     * @param movieName the movie name
     */
    public void setMovieName(String movieName) {
        this.movieName = movieName == null ? null : movieName.trim();
    }

    /**
     * Gets movie name second.
     *
     * @return the movie name second
     */
    public String getMovieNameSecond() {
        return movieNameSecond;
    }

    /**
     * Sets movie name second.
     *
     * @param movieNameSecond the movie name second
     */
    public void setMovieNameSecond(String movieNameSecond) {
        this.movieNameSecond = movieNameSecond == null ? null : movieNameSecond.trim();
    }

    /**
     * Gets movie director.
     *
     * @return the movie director
     */
    public String getMovieDirector() {
        return movieDirector;
    }

    /**
     * Sets movie director.
     *
     * @param movieDirector the movie director
     */
    public void setMovieDirector(String movieDirector) {
        this.movieDirector = movieDirector == null ? null : movieDirector.trim();
    }

    /**
     * Gets movie starring.
     *
     * @return the movie starring
     */
    public String getMovieStarring() {
        return movieStarring;
    }

    /**
     * Sets movie starring.
     *
     * @param movieStarring the movie starring
     */
    public void setMovieStarring(String movieStarring) {
        this.movieStarring = movieStarring == null ? null : movieStarring.trim();
    }

    /**
     * Gets movie price.
     *
     * @return the movie price
     */
    public BigDecimal getMoviePrice() {
        return moviePrice;
    }

    /**
     * Sets movie price.
     *
     * @param moviePrice the movie price
     */
    public void setMoviePrice(BigDecimal moviePrice) {
        this.moviePrice = moviePrice;
    }

    /**
     * Gets movie is show.
     *
     * @return the movie is show
     */
    public Boolean getMovieIsShow() {
        return movieIsShow;
    }

    /**
     * Sets movie is show.
     *
     * @param movieIsShow the movie is show
     */
    public void setMovieIsShow(Boolean movieIsShow) {
        this.movieIsShow = movieIsShow;
    }

    /**
     * Gets movie create.
     *
     * @return the movie create
     */
    public Date getMovieCreate() {
        return movieCreate;
    }

    /**
     * Sets movie create.
     *
     * @param movieCreate the movie create
     */
    public void setMovieCreate(Date movieCreate) {
        this.movieCreate = movieCreate;
    }

    @Override
    public String toString() {
        return new StringJoiner(", ",  "[", "]")
                .add("movieId=" + movieId)
                .add("movieName='" + movieName + "'")
                .add("movieNameSecond='" + movieNameSecond + "'")
                .add("movieDirector='" + movieDirector + "'")
                .add("movieStarring='" + movieStarring + "'")
                .add("moviePrice=" + moviePrice)
                .add("movieIsShow=" + movieIsShow)
                .add("movieCreate=" + movieCreate)
                .toString();
    }
}